#include "solarradiometerdisplayform.h"
#include "ui_solarradiometerdisplayform.h"
#include "../gloab/globalobserver.h"

SolarRadiometerDisplayForm::SolarRadiometerDisplayForm(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::SolarRadiometerDisplayForm)
{
    ui->setupUi(this);

    connect(GlobalObserver::getInstance(), &GlobalObserver::Sig_SolarRadioMeterProtocolNSU, this, &SolarRadiometerDisplayForm::slot_Recive_DeviceSolorRadioMeterProtocolNSU);
    connect(GlobalObserver::getInstance(), &GlobalObserver::Sig_SolarRadioMeterProtocolSTA, this, &SolarRadiometerDisplayForm::slot_Recive_DeviceSolorRadioMeterProtocolSTA);
    connect(GlobalObserver::getInstance(), &GlobalObserver::Sig_SolarRadioMeterProtocolAOD, this, &SolarRadiometerDisplayForm::slot_Recive_DeviceSolorRadioMeterProtocolAOD);
    connect(GlobalObserver::getInstance(), &GlobalObserver::Sig_SolarRadioMeterProtocolATR, this, &SolarRadiometerDisplayForm::slot_Recive_DeviceSolorRadioMeterProtocolATR);
    connect(GlobalObserver::getInstance(), &GlobalObserver::Sig_SolarRadioMeterProtocolLAT, this, &SolarRadiometerDisplayForm::slot_Recive_DeviceSolorRadioMeterProtocolLAT);
    connect(GlobalObserver::getInstance(), &GlobalObserver::Sig_SolarRadioMeterProtocolLON, this, &SolarRadiometerDisplayForm::slot_Recive_DeviceSolorRadioMeterProtocolLON);
}

SolarRadiometerDisplayForm::~SolarRadiometerDisplayForm()
{
    delete ui;
}

void SolarRadiometerDisplayForm::initDataList()
{
    ui->tableView_dataList->setWindowTitle("数据列表");
    ui->tableView_dataList->setWindowIconText("数据列表");
    m_model.setRowCount(0);
    m_model.setColumnCount(12);
    m_model.setHorizontalHeaderLabels(QStringList() << "水汽"
                                                    << "时间"
                                                    <<"波长1020"<<"波长1640I"<<"波长870"
                                                    <<"波长675"<<"波长440"<<"波长500"
                                                    <<"波长1020I"<<"波长937"<<"波长380"<<"波长340");

    QHeaderView *headerView = ui->tableView_dataList->horizontalHeader();
    // 设置样式表，包括背景颜色和字体样式
    headerView->setSectionResizeMode(QHeaderView::ResizeMode::Stretch);
    headerView->setStyleSheet("QHeaderView::section { background-color: #8da1ff; color: white }");
    headerView->setTextElideMode(Qt::TextElideMode::ElideMiddle);

    ui->tableView_dataList->setModel(&m_model);
}

void SolarRadiometerDisplayForm::slot_Recive_DeviceSolorRadioMeterProtocolNSU(const protocol::RadioMeterNSUProtocolAll &protocol)
{
    qDebug()<<"slot_Recive_DeviceSolorRadioMeterProtocolNSU";
    ui->label_NSU1020->setText(QString::number(protocol.sun1020));
    ui->label_NSU1640I->setText(QString::number(protocol.sun1640I));
    ui->label_NSU870->setText(QString::number(protocol.sun870));
    ui->label_NSU675->setText(QString::number(protocol.sun675));
    ui->label_NSU440->setText(QString::number(protocol.sun440));
    ui->label_NSU500->setText(QString::number(protocol.sun500));
    ui->label_NSU1020I->setText(QString::number(protocol.sun1020I));
    ui->label_NSU937->setText(QString::number(protocol.sun937));
    ui->label_NSU380->setText(QString::number(protocol.sun380));
    ui->label_NSU340->setText(QString::number(protocol.sun340));
}

void SolarRadiometerDisplayForm::slot_Recive_DeviceSolorRadioMeterProtocolSTA(const protocol::RadioMeterSTAProtocolAll &protocol)
{
}

void SolarRadiometerDisplayForm::slot_Recive_DeviceSolorRadioMeterProtocolAOD(const protocol::RadioMeterAODProtocolAll &protocol)
{
    qDebug()<<"slot_Recive_DeviceSolorRadioMeterProtocolAOD";
    ui->label_AOD1020->setText(QString::number(protocol.sun1020));
    ui->label_AOD1640I->setText(QString::number(protocol.sun1640I));
    ui->label_AOD870->setText(QString::number(protocol.sun870));
    ui->label_AOD675->setText(QString::number(protocol.sun675));
    ui->label_AOD440->setText(QString::number(protocol.sun440));
    ui->label_AOD500->setText(QString::number(protocol.sun500));
    ui->label_AOD1020I->setText(QString::number(protocol.sun1020I));
    ui->label_AOD937->setText(QString::number(protocol.sun937));
    ui->label_AOD380->setText(QString::number(protocol.sun380));
    ui->label_AOD340->setText(QString::number(protocol.sun340));
    ui->label_PWV->setText(QString::number(protocol.PWV));
}

void SolarRadiometerDisplayForm::slot_Recive_DeviceSolorRadioMeterProtocolATR(const protocol::RadioMeterATRProtocolAll &protocol)
{
    qDebug()<<"slot_Recive_DeviceSolorRadioMeterProtocolATR";
    ui->label_ATR1020->setText(QString::number(protocol.sun1020));
    ui->label_ATR1640I->setText(QString::number(protocol.sun1640I));
    ui->label_ATR870->setText(QString::number(protocol.sun870));
    ui->label_ATR675->setText(QString::number(protocol.sun675));
    ui->label_ATR440->setText(QString::number(protocol.sun440));
    ui->label_ATR500->setText(QString::number(protocol.sun500));
    ui->label_ATR1020I->setText(QString::number(protocol.sun1020I));
    ui->label_ATR937->setText(QString::number(protocol.sun937));
    ui->label_ATR380->setText(QString::number(protocol.sun380));
    ui->label_ATR340->setText(QString::number(protocol.sun340));
}

void SolarRadiometerDisplayForm::slot_Recive_DeviceSolorRadioMeterProtocolLAT(const QString &protocol)
{

}

void SolarRadiometerDisplayForm::slot_Recive_DeviceSolorRadioMeterProtocolLON(const QString &protocol)
{

}


